package tree

import "fmt"

type Node struct {
	Value       int
	Left, Right *Node
}

func (node Node) Print() { // Node 接收者
	fmt.Print(node.Value, " ")
}

func (node *Node) SetValue(value int) { // 指针接收者
	if node == nil {
		fmt.Println("Setting Value to nil Node. Ignored.")
		return
	}
	node.Value = value
}

// 工厂函数
func CreateNode(value int) *Node {
	return &Node{Value: value} // go语言可以返回局部变量地址给外部用，有垃圾回收机制
}
